MoveLinearRelative
命令轴群之工具中心点自当前位置进行直线插补运动至指定坐标系之相对位置。给定之相对距离会被添加到当前设置位置。
语法
KsCommandStatus MoveLinearRelative(
int Index,
int Length,
double* Distance,
double Velocity,
double Acceleration,
double Deceleration,
double Jerk,
McCoordSystem CoordSystem,
McBufferMode BufferMode,
McTransitionMode TransitionMode,
double* TransitionParameter
);
参数
Index [in]:轴组索引,索引以零为起点。最多可有 32 个轴组。
Length [in]:距离 (Distance) 阵列长度。
Distance [in]:指定坐标系中每个维度的相对距离阵列 [1..N],其中 N 为 64。
Velocity [in]:定义路径中坐标系路径的最大速度,永远为正值,非必要到达,[单位/秒]。
Acceleration [in]:最大加速度,永远为正值,非必要到达,单位由 McProfileType 类型决定,为 [单位/秒2] 或 [秒]。
Deceleration [in]:最大减速度,永远为正值,非必要到达,单位由 McProfileType 类型决定,为 [单位/秒2] 或 [秒]。
Jerk [in]:最大加加速度。永远为正值,非必要到达,单位由 McProfileType 类型决定,为 [单位/秒3] 或 [秒]。
CoordSystem [in]:座标系统,请见 McCoordSystem 类型。
BufferMode [in]:定义如何融合两功能的速度,请见 McBufferMode 类型。
TransitionMode [in]:插入转换曲线。请见 McTransitionMode 类型。
TransitionParameter [in]:转换模式的附加参数,若将 TransitionMode 设为 mcNone
,则此参数无效。
回传值
返回 KsCommandStatus 结构。
备注
- 更多关于绝对、相对与附加的运作方式之资讯请见: 概念解说 > 运动。
- 更多关于融合模式的运作方式之资讯请见: 概念解说 > 融合运动。
-
当在 MoveLinear 函式中使用融合,需选择 TransitionMode 并填入TransitionParameter,若用融合模式将函式传送至
mcNone
与NULL
,将会发生错误。
范例
VOID MoveRelative(INT Group, DOUBLE DistanceX, DOUBLE DistanceY) {
DOUBLE Distance[2] = { DistanceX, DistanceY };
//Start an relative move.
KsCommandStatus move = WaitForCommand(30, TRUE, MoveLinearRelative(Group, 2, Distance,
3600, 36000, 36000, 3600000,
mcAxisCoordSystem, mcAborting, mcNone, NULL));
DOUBLE Position[2] = { 0, 0 };
GetGroupActualPosition(Group, mcAxisCoordSystem, mcActualValue, 2, Position);
RtPrintf("Current Position: %d,%d\n", (int)Position[0], (int)Position[1]);
}
使用需求
RT | Win32 | |
---|---|---|
最低支援版本 | 4.0 | 4.0 |
标头档 | ksmotion.h | ksmotion.h |
程式库 | KsApi_Rtss.lib | KsApi.lib |
参见